package edu.controller;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import edu.terapia.model.Servicio;
import edu.util.HbnUtil;

@ManagedBean(name="servicioBean")
@SessionScoped
public class ServicioBean implements Serializable {

	public Servicio servicio;
	public List<Servicio> servicioList = null;
	
	public Servicio getServicio() {
		return servicio;
	}
	public void setServicio(Servicio servicio) {
		this.servicio = servicio;
	}
	
	public List<Servicio> getServicioList() {
		return servicioList;
	}
	public void setServicioList(List<Servicio> servicioList) {
		this.servicioList = servicioList;
	}
	
	@SuppressWarnings("unchecked")
	public ServicioBean() {
		servicio = new Servicio();
		SessionFactory s =  HbnUtil.getSessionFactory();
		Transaction t = s.getCurrentSession().beginTransaction();
		servicioList = s.getCurrentSession().createCriteria(Servicio.class).list();
		t.commit();
		s.close();
	}
	
	public String save() {
		SessionFactory s =  HbnUtil.getSessionFactory();
		Transaction t = s.getCurrentSession().beginTransaction();
		s.getCurrentSession().save(servicio);
		servicioList = s.getCurrentSession().createCriteria(Servicio.class).list();
		t.commit();
		s.close();
		return "servicio?faces-redirect=true";
	}
	
	public String update() {
		SessionFactory s =  HbnUtil.getSessionFactory();
		Transaction t = s.getCurrentSession().beginTransaction();
		s.getCurrentSession().update(servicio);
		servicioList = s.getCurrentSession().createCriteria(Servicio.class).list();
		t.commit();
		s.close();
		return "servicio?faces-redirect=true";
	}
	
	public String edit(Servicio servicio) {
		this.servicio = servicio;
		return "update_servicio?faces-redirect=true";
	}
	
	public String delete(Servicio servicio) {
		this.servicio = servicio;
		SessionFactory s =  HbnUtil.getSessionFactory();
		Transaction t = s.getCurrentSession().beginTransaction();
		s.getCurrentSession().delete(servicio);
		servicioList = s.getCurrentSession().createCriteria(Servicio.class).list();
		t.commit();
		s.close();
		return "servicio?faces-redirect=true";
	}
	
	public void clear() {
		servicio = new Servicio();
	}
	

}
